<template>
    <div class="reportFormPage" v-if="show">
        <div class="report-dom">
            <el-row>
                <el-col :span="5" :offset="19">
                    <div class="pageNumBox">
                        <span>第</span>
                        <span class="placeholder-min text-center">&nbsp;{{ form.page }}&nbsp;</span>
                        <span>页，共</span>
                        <span class="placeholder-min text-center">&nbsp;{{ form.totalPage }}&nbsp;</span>
                        <span>页</span>
                    </div>
                </el-col>
            </el-row>
            <div class="topTwoBox">
                <div class="centerName">{{ this.form.baobmc }}</div>
                <div class="codeText">
                    <tr v-for="(item, index) in form.baobbhList">{{ item }}</tr>
                </div>
            </div>
            <div class="threeTopBox">
                <div class="left-border">
                    <div class="box-title">检测单位名称：</div>
                    <div class>{{ form.jiancdwmc }}</div>
                </div>
                <div class="right-border">
                    <span>记录编号：</span>
                    <span class="placeholder">{{ form.jilbh }}</span>
                </div>
            </div>
            <!-- .........................1111111111111111111111111111111......................................................... -->
            <div class="table-border">
                <table height="220px" class="top-table">
                    <tbody>
                    <tr>
                        <td height="30" align="center" width="15%">
                            <span style="width: 90px; display: inline-block">工程名称</span>
                        </td>
                        <td width="35%" class="text-center">
                            <span>{{ form.gongcmc }}</span>
                        </td>
                        <td align="center" width="15%">
                            <span style="width: 90px; display: inline-block">工程部位/用途</span>
                        </td>
                        <td width="35%" class="text-center">
                            <span>{{ form.gongcbwyt }}</span>
                        </td>
                    </tr>
                    <tr>
                        <td height="50" align="center">样品信息</td>
                        <td class="specimen-border" colspan="3">
                            <span>样品名称：</span>
                            <span :class="{ 'placeholder': !form.yangpmc }">{{ form.yangpmc }}</span>
                            <span>；样品编号：</span>
                            <span :class="{ 'placeholder-long': !form.yangpbh }">{{ form.yangpbh }}</span>
                            <span>；样品数量：</span>
                            <span :class="{ 'placeholder': !form.yangpsl }">{{ form.yangpsl }}</span>
                            <span>；样品状态：</span>
                            <span :class="{ 'placeholder': !form.yangpzt }">{{ form.yangpzt }}</span>
                            <span>；来样时间：</span>
                            <span :class="{ 'placeholder': !form.yangpsj }">{{ form.yangpsj }}</span>
                        </td>
                    </tr>

                    <tr>
                        <td height="25" align="center" width="15%">
                            <span style="width: 90px; display: inline-block">试验检测日期</span>
                        </td>
                         <!-- <td width="35%" class="text-center">{{ form.shiyjcrq }}</td> -->                                            
 <td width="35%" class="text-center">
      <el-input v-model="form.shiyjcrq" />
</td>
                        <td align="center" width="15%">
                            <span style="width: 90px; display: inline-block">试验条件</span>
                        </td>
                        <td v-if="isPdf" width="35%">
                            温度：
                            <span style="display: inline-block; width: 10%;">{{ form.shiytjwd }}</span>
                            ℃；湿度：
                            <span style="display: inline-block; width: 10%;">{{ form.shiytjsd }}</span>%RH
                        </td>
                        <td v-else width="35%">
                            温度：
                            <el-input :type="isPdf ? 'string' : 'number'" v-model="form.shiytjwd" style="width: 15%"/>
                            ℃；湿度：
                            <el-input :type="isPdf ? 'string' : 'number'" v-model="form.shiytjsd" style="width: 15%"/>
                            %RH
                        </td>
                    </tr>

                    <tr>
                        <td height="50" align="center" width="15%">
                            <span style="width: 90px; display: inline-block">检测依据</span>
                        </td>
                        <td width="35%">
                            <span v-if="isPdf">{{ form.jiancyj }}</span>
                            <el-input v-else type="textarea" v-model="form.jiancyj" :rows="2" class="mark"
                                      @dblclick.native="showBsJiancyjView" readonly/>
                        </td>
                        <td align="center" width="15%">
                            <span style="width: 90px; display: inline-block">判定依据</span>
                        </td>
                        <td width="35%">
                            <span v-if="isPdf">{{ form.pandyj }}</span>
                            <el-input v-else type="textarea" v-model="form.pandyj" :rows="2"
                                      @dblclick.native="showBsJudgeBaseView"
                                      @focus="handleFocus('pandyj')" class="mark"/>
                        </td>
                    </tr>
                    <tr class="bottom-border">
                        <td height="50" align="center">
                            <div>主要仪器设备</div>
                            <div>名称及编号</div>
                        </td>
                        <td colspan="3">
                            <span v-if="isPdf">{{ form.zhuyyqsbmcjbh }}</span>
                            <el-input v-else type="textarea" :rows="2" v-model="form.zhuyyqsbmcjbh"
                                      class="height100 width100 mark"
                                      @dblclick.native="showBsInstrumentView" readonly></el-input>
                        </td>
                    </tr>
                    </tbody>
                </table>
                <!-- .................................222222222221111111111111111111111............................................... -->
                <table height="80px" class="middle-table">
                    <tbody>
                    <tr>
                        <td height="40" align="center" width="15%">取样地点</td>
                        <td width="35%">
                            <span>{{ this.form.quydd }}</span>
                        </td>
                        <td height="40" align="center" width="15%">代表数量</td>
                        <td width="35%">
                            <span>{{ this.form.daibsl }}</span>
                        </td>
                    </tr>
                    <tr>
                        <td align="center" height="40">进场日期</td>
                        <td bgcolor="white">
                            <span>{{ this.form.jincrq }}</span>
                        </td>
                        <td align="center" height="40">产地</td>
                        <td bgcolor="white">
                            <span>{{ this.form.cd }}</span>
                        </td>
                    </tr>
                    </tbody>
                </table>
                <!-- .................................22222222222222222222222222222222............................................... -->
                <table height="500px" class="middle-table">
                    <tbody>
                    <tr trindex="0" height="50">
                        <td width="4%" rowspan="3">
                            <div>密</br>度</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>表观相对密度</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>表干相对密度</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>毛体积相对密度</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>表观密度(g/cm<sup>3</sup>)</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>表干密度(g/cm<sup>3</sup>)</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>毛体积密度(g/cm<sup>3</sup>)</div>
                        </td>
                    </tr>
                    <tr trindex="1" height="80">
                        <td width="8%">
                            <div>{{ this.form.biaoguanxdmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.biaoguanxdmdPjz }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoganxdmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.biaoganxdmdPjz }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.maotjxdmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.maotjxdmdPjz }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoguanmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.biaoguanmdPjz }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoganmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.biaoganmdPjz }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.maotjmdItem1 }}</div>
                        </td>
                        <td width="8%" rowspan="2">
                            <div>{{ this.form.maotjmdPjz }}</div>
                        </td>
                    </tr>
                    <tr trindex="2" height="80">
                        <td width="8%">
                            <div>{{ this.form.biaoguanxdmdItem2 }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoganxdmdItem2 }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.maotjxdmdItem2 }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoguanmdItem2 }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.biaoganmdItem2 }}</div>
                        </td>
                        <td width="8%">
                            <div>{{ this.form.maotjmdItem2 }}</div>
                        </td>
                    </tr>
                    <tr trindex="3" height="50">
                        <td width="4%" rowspan="3">
                            <div>吸</br>水</br>率</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>集料烘干质量（g）</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>集料表干质量（g）</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>集料水中质量（g）</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>水温（℃）</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>吸水率（%）</div>
                        </td>
                        <td width="16%" colspan="2">
                            <div>平均值（%）</div>
                        </td>
                    </tr>
                    <tr trindex="4" height="75">
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilhgzlItem1"
                                      @change="compute(1, 1)"
                                      @keydown.native="handleKeyDown($event, 0, 0)"
                                      @paste.native="handlePaste($event, 0, 0)"
                                      :ref="'0_0'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilbgzlItem1"
                                      @change="compute(1, 1)"
                                      @keydown.native="handleKeyDown($event, 0, 1)"
                                      @paste.native="handlePaste($event, 0, 1)"
                                      :ref="'0_1'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilszzlItem1"
                                      @change="compute(2, 1)"
                                      @keydown.native="handleKeyDown($event, 0, 2)"
                                      @paste.native="handlePaste($event, 0, 2)"
                                      :ref="'0_2'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <el-select v-model="form.shuiwenItem1" class="hide-icon height100" placeholder=""
                                       @change="shuiwenChange(1)">
                                <el-option v-for="(item, index) in shuiwenList" :key="index" :label="item.temp"
                                           :value="item.temp"></el-option>
                            </el-select>
                            <!-- <el-input :type="isPdf ? 'string' : 'number'" tabindex="200" v-model="form.shuiwenItem1" /> -->
                        </td>
                        <td width="16%" colspan="2">
                            <div>{{ this.form.xislItem1 }}</div>
                        </td>
                        <td width="16%" colspan="2" rowspan="2">
                            <div>{{ this.form.xislPjz }}</div>
                        </td>
                    </tr>
                    <tr trindex="5" height="75">
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilhgzlItem2"
                                      @change="compute(1, 2)"
                                      @keydown.native="handleKeyDown($event, 1, 0)"
                                      @paste.native="handlePaste($event, 1, 0)"
                                      :ref="'1_0'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilbgzlItem2"
                                      @change="compute(1, 2)"
                                      @keydown.native="handleKeyDown($event, 1, 1)"
                                      @paste.native="handlePaste($event, 1, 1)"
                                      :ref="'1_1'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <el-input :type="isPdf ? 'string' : 'number'" tabindex="200"
                                      v-model="form.jilszzlItem2"
                                      @change="compute(2, 2)"
                                      @keydown.native="handleKeyDown($event, 1, 2)"
                                      @paste.native="handlePaste($event, 1, 2)"
                                      :ref="'1_2'"/>
                        </td>
                        <td width="16%" colspan="2">
                            <!-- <el-input :type="isPdf ? 'string' : 'number'" tabindex="200" v-model="form.shuiwenItem2" /> -->
                            <el-select v-model="form.shuiwenItem2" class="hide-icon height100" placeholder=""
                                       @change="shuiwenChange(2)">
                                <el-option v-for="(item, index) in shuiwenList" :key="index" :label="item.temp"
                                           :value="item.temp"></el-option>
                            </el-select>
                        </td>
                        <td width="16%" colspan="2">
                            <div>{{ this.form.xislItem2 }}</div>
                        </td>
                    </tr>
                    </tbody>
                </table>
                <!-- .....................................................33333333333333333................................................... -->
                <table height="80px" class="bottom-table">
                    <tr>
                        <td>
                            <span v-if="isPdf" class="textarea-span">{{ form.fujsm }}</span>
                            <el-input v-else type="textarea" :rows="2" v-model="form.fujsm"
                                      @focus="handleFocus('fujsm')"/>
                        </td>
                    </tr>
                </table>
            </div>
            <!-- .................................44444444444............................................. -->
            <table height="22px" class="transparent">
                <tbody>
                <tr>
                    <td width="10%" align="right">检测：</td>
                    <td width="15%" align="left">
                        <!-- {{this.form.jiancr}} -->
                    </td>
                    <td width="10%" align="right">记录：</td>
                    <td width="15%" align="left">
                        <!-- {{this.form.jilr}} -->
                    </td>
                    <td width="10%" align="right">复核：</td>
                    <td align="left" width="15%">
                        <!-- {{this.form.fuhr}} -->
                    </td>
                    <td width="10%">日期：</td>
                    <td align="left" width="15%">
                        <div style="display: inline-block; margin-right: 30px;">年</div>
                        <div style="display: inline-block; margin-right: 30px;">月</div>
                        <div style="display: inline-block;">日</div>
                    </td>
                </tr>
                </tbody>
            </table>
        </div>
        <bs-instrument-view ref="bsInstrumentViewRef" @select="selectInstrument"></bs-instrument-view>
        <bs-jiancyj-view ref="bsJiancyjViewRef" @select="selectJiancyj" :syType="syType"></bs-jiancyj-view>
        <bs-judge-base-view ref="bsJudgeBaseViewRef" @select="selectJudge" :syType="syType"></bs-judge-base-view>
    </div>
</template>

<script>
import {handleFocus, emptyConvert, uniqueStr, handleKeyDown, handlePaste} from "@/views/reportForms/utils";
import {listBySyTypeId} from "@/api/sycs/dataBase";
import {getCjlmdxslwlflqyjlbBsInfo} from "@/api/report_jl/cjl";
import BsInstrumentView from "@/views/dept/bsInstrument/BsInstrumentView";
import BsJiancyjView from "@/views/sycs/bsJiancyj/BsJiancyjView";
import BsJudgeBaseView from "@/views/sycs/bsJudgeBase/BsJudgeBaseView.vue";

import decimal from "@/utils/big-decimal";
import Bus from "@/utils/bus";

export default {
    name: "cjlmdxslwlflqyjlbTable",
    components: {
        BsInstrumentView,
        BsJiancyjView,
        BsJudgeBaseView
    },
    props: {
        excelId: {
            type: [String, Number],
            default: () => ""
        },
        syType: {
            type: [String, Number],
            default: () => ""
        },
        page: {
            type: Number,
            default: () => 0
        },
        isPdf: {
            type: Boolean,
            default: () => false
        },
        printEmpty: {
            type: Boolean,
            default: () => false
        }
    },
    data() {
        return {
            form: {
                detailList: [],
                baobbhList: []
            },
            show: false,
            showQyxx: true,
            backBgz: {},
            shuiwenList: []
        };
    },
    created() {
        this.init();
        this.getShuiwenList();
    },
    watch: {
        isPdf(newVal, oldVal) {
            this.form = {...emptyConvert(this.form, newVal)};
        },
        backBgz: {
            // deep: true,
            // immediate: true,
            handler(newVal, oldVal) {
                this.backBgzFun();
            }
        },
    },
    methods: {
        // 根据报表id获取当前报表信息
        init() {
            this.show = false;
            getCjlmdxslwlflqyjlbBsInfo(this.excelId || this.$defaultExcelId).then((response) => {
                this.form = response.data;
                if (!this.form.fujsm) {
                    this.form.fujsm = "附加声明：";
                }
                this.setInitialValue();
                this.show = true;
            });
        },
        // 查询水的密度列表
        getShuiwenList() {
            listBySyTypeId({syYjId: '281757153833'}).then((response) => {
                const data = response.data;
                this.shuiwenList = data.page.records;
            });
        },
        // 设置初始值
        setInitialValue() {
            if (this.form) {
                this.form.baobmc = this.form.baobmc || "粗集料密度、吸水率试验检测记录表（网篮法）";
                this.form.baobbh = this.form.baobbh || "JGLQ02002a,JGLQ02003a";
                this.$set(this.form, "baobbhList", []);
                this.form.baobbhList = ["JGLQ02002a", "JGLQ02003a"];
            }
        },
        // 显示仪器列表
        showBsInstrumentView() {
            this.$refs.bsInstrumentViewRef.init(this.form.shebIds);
        },
        // 仪器选择
        selectInstrument(info) {
            this.form.zhuyyqsbmcjbh = info.label;
            this.form.shebIds = info.ids;
            Bus.$emit("setCjlBgZhuyyqsbmcjbh", {zhuyyqsbmcjbh: this.form.zhuyyqsbmcjbh, shebIds: this.form.shebIds});
        },
        // 显示检测依据列表
        showBsJiancyjView() {
            this.$refs.bsJiancyjViewRef.init(this.form.jiancyjIds);
        },
        // 检测依据选择
        selectJiancyj(info) {
            this.form.jiancyj = info.label;
            this.form.jiancyjIds = info.ids;
            Bus.$emit("setCjlBgJiancyj", {jiancyj: this.form.jiancyj, jiancyjIds: this.form.jiancyjIds});
        },
        // 显示判定依据列表
        showBsJudgeBaseView() {
            this.$refs.bsJudgeBaseViewRef.init(this.form.pandyjIds);
        },
        // 判断依据选择
        selectJudge(info) {
            if (!this.form.pandyj) {
                this.form.pandyj = info.label;
                return;
            }
            if (info && info.label) {
                this.form.pandyj += "、" + info.label;
            }
        },
        // 返回报告引入值
        backBgzFun() {
            // this.$emit("backBgzFun", this.backBgz);
            Bus.$emit("setCjlBgJiancjg", [
                {key: 159, value: this.form.biaoguanxdmdPjz},
                {key: 25, value: this.form.xislPjz}
            ]);
        },
        submitForm() {
            return this.form;
        },
        handleFocus(event) {
            handleFocus(event, this.page, this.form[event]);
        },
        // 计算
        compute(type, index) {
            if (type == 1) {
                this.computeXsl(index);
                this.computeBGuanXdMd(index);
                this.computeMTjXdMd(index);
                this.computeBguanmd(index);
                this.computeMtjmd(index);
            } else {
                this.computeBGuanXdMd(index);
                this.computeBGanXdMd(index);
                this.computeMTjXdMd(index);
                this.computeBguanmd(index);
                this.computeBganmd(index);
                this.computeMtjmd(index);
            }
        },
        shuiwenChange(index) {
            this.computeBguanmd(index);
            this.computeBganmd(index);
            this.computeMtjmd(index);
        },
        // 吸水率1
        computeXsl(index) {
            const jilbgzlItem = this.form['jilbgzlItem' + index];
            const jilhgzlItem = this.form['jilhgzlItem' + index];
            if (jilbgzlItem && jilhgzlItem && jilhgzlItem != 0) {
                const a = decimal.subtract(jilbgzlItem || 0, jilhgzlItem || 0);
                const b = decimal.multiply(a, 100);
                const e = decimal.divide(b, jilhgzlItem);
                this.form['xislItem' + index] = e;
            } else {
                this.form['xislItem' + index] = null;
            }

            if (this.form.xislItem1 && this.form.xislItem2) {
                const c = decimal.add(this.form.xislItem1 || 0, this.form.xislItem2 || 0);
                const d = decimal.divide(c, 2);
                this.form.xislPjz = d;
            } else {
                this.form.xislPjz = null;
            }
            this.backBgzFun();
        },
        // 表观相对密度1
        computeBGuanXdMd(index) {
            const jilhgzlItem = this.form['jilhgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            if (jilhgzlItem && jilszzlItem) {
                const a = decimal.subtract(jilhgzlItem || 0, jilszzlItem || 0, 3);
                if (a != 0) {
                    // a/(a-b)
                    const b = decimal.divide(jilhgzlItem || 0, a, 3);
                    this.form['biaoguanxdmdItem' + index] = b;
                } else {
                    this.form['biaoguanxdmdItem' + index] = null;
                }
            } else {
                this.form['biaoguanxdmdItem' + index] = null;
            }

            if (this.form.biaoguanxdmdItem1 && this.form.biaoguanxdmdItem2) {
                const c = decimal.add(this.form.biaoguanxdmdItem1 || 0, this.form.biaoguanxdmdItem2 || 0, 3);
                const d = decimal.divide(c, 2, 3);

                this.form.biaoguanxdmdPjz = d;
            } else {
                this.form.biaoguanxdmdPjz = null;
            }
            this.backBgzFun();
        },
        // 表干相对密度1
        computeBGanXdMd(index) {
            const jilbgzlItem = this.form['jilbgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            if (jilbgzlItem && jilszzlItem) {
                const a = decimal.subtract(jilbgzlItem || 0, jilszzlItem || 0, 3);
                if (a != 0) {
                    const b = decimal.divide(jilbgzlItem || 0, a, 3);
                    this.form['biaoganxdmdItem' + index] = b;
                } else {
                    this.form['biaoganxdmdItem' + index] = null;
                }
            } else {
                this.form.biaoganxdmdItem1 = null;
            }

            if (this.form.biaoganxdmdItem1 && this.form.biaoganxdmdItem2) {
                const c = decimal.add(this.form.biaoganxdmdItem1 || 0, this.form.biaoganxdmdItem2 || 0, 3);
                const d = decimal.divide(c, 2, 3);
                this.form.biaoganxdmdPjz = d;
            } else {
                this.form.biaoganxdmdPjz = null;
            }
        },
        // 毛体积相对密度1
        computeMTjXdMd(index) {
            const jilbgzlItem = this.form['jilbgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            const jilhgzlItem = this.form['jilhgzlItem' + index];
            const a = decimal.subtract(jilbgzlItem || 0, jilszzlItem || 0, 3);
            if (a != 0) {
                // a/(c-b)
                const b = decimal.divide(jilhgzlItem || 0, a, 3);
                this.form['maotjxdmdItem' + index] = b;
            } else {
                this.form['maotjxdmdItem' + index] = null;
            }
            if (this.form.maotjxdmdItem1 && this.form.maotjxdmdItem2) {
                const c = decimal.add(this.form.maotjxdmdItem1 || 0, this.form.maotjxdmdItem2 || 0, 3);
                const d = decimal.divide(c, 2, 3);
                this.form.maotjxdmdPjz = d;
            } else {
                this.form.maotjxdmdPjz = null;
            }
        },
        // 表观密度1
        computeBguanmd(index) {
            const jilhgzlItem = this.form['jilhgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            const a = decimal.subtract(jilhgzlItem || 0, jilszzlItem || 0, 3);
            if (a != 0) {
                const b = decimal.divide(jilhgzlItem || 0, a, 3);
                const info = this.shuiwenList.find(item => item.temp == this.form["shuiwenItem" + index]);
                if (info.density) {
                    const c = decimal.multiply(b, info.density, 3);
                    this.form['biaoguanmdItem' + index] = c;
                } else {
                    this.form['biaoguanmdItem' + index] = null;
                }
            } else {
                this.form['biaoguanmdItem' + index] = null;
            }
            if (this.form.biaoguanmdItem1 && this.form.biaoguanmdItem2) {
                const d = decimal.add(this.form.biaoguanmdItem1 || 0, this.form.biaoguanmdItem2 || 0, 3);
                const e = decimal.divide(d, 2, 3);
                this.form.biaoguanmdPjz = e;
            } else {
                this.form.biaoguanmdPjz = null;
            }
        },
        // 表干密度1
        computeBganmd(index) {
            const jilbgzlItem = this.form['jilbgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            const a = decimal.subtract(jilbgzlItem || 0, jilszzlItem || 0, 3);
            if (a != 0) {
                // c/（c-b）*0.99822
                const b = decimal.divide(jilbgzlItem || 0, a, 3);
                const info = this.shuiwenList.find(item => item.temp == this.form["shuiwenItem" + index]);
                if (info.density) {
                    const c = decimal.multiply(b, info.density, 3);
                    this.form['biaoganmdItem' + index] = c;
                } else {
                    this.form['biaoganmdItem' + index] = null;
                }
            } else {
                this.form['biaoganmdItem' + index] = null;
            }
            if (this.form.biaoganmdItem1 && this.form.biaoganmdItem2) {
                const d = decimal.add(this.form.biaoganmdItem1 || 0, this.form.biaoganmdItem2 || 0, 3);
                const e = decimal.divide(d, 2, 3);
                this.form.biaoganmdPjz = e;
            } else {
                this.form.biaoganmdPjz = null;
            }
        },
        // 毛体积密度1
        computeMtjmd(index) {
            const jilbgzlItem = this.form['jilbgzlItem' + index];
            const jilszzlItem = this.form['jilszzlItem' + index];
            const jilhgzlItem = this.form['jilhgzlItem' + index];

            if (jilbgzlItem && jilszzlItem) {
                const a = decimal.subtract(jilbgzlItem || 0, jilszzlItem || 0, 3);
                if (a != 0) {
                    const b = decimal.divide(jilhgzlItem || 0, a, 3);
                    // 水密度
                    const info = this.shuiwenList.find(item => item.temp == this.form["shuiwenItem" + index]);
                    if (info.density) {
                        const c = decimal.multiply(b, info.density, 3);
                        this.form['maotjmdItem' + index] = c;
                    } else {
                        this.form['maotjmdItem' + index] = null;
                    }
                } else {
                    this.form['maotjmdItem' + index] = null;
                }
            } else {
                this.form['maotjmdItem' + index] = null;
            }

            if (this.form.maotjmdItem1 && this.form.maotjmdItem2) {
                const d = decimal.add(this.form.maotjmdItem1 || 0, this.form.maotjmdItem2 || 0, 3);
                const e = decimal.divide(d, 2, 3);
                this.form.maotjmdPjz = e;
            } else {
                this.form.maotjmdPjz = null;
            }
        },
        handleKeyDown(event, rowIndex, colIndex) {
            const maxArr = [2, 2]; // 每一行最多有多少可聚焦输入框（从0开始）
            const ref = handleKeyDown(event, rowIndex, colIndex, maxArr);
            if (this.$refs[ref]) {
                this.$refs[ref].focus();
            }
        },
        // 粘贴赋值方法
        handlePaste(event, rowIndex, colIndex) {
            const nameAllArr = [
                ["jilhgzlItem1", "jilbgzlItem1", "jilszzlItem1"],
                ["jilhgzlItem2", "jilbgzlItem2", "jilszzlItem2"],

            ];
            const subscriptArr = [
                [0, 1, 2],
                [0, 1, 2],
            ];

            const methodsAllArr = [
                ["compute", "compute", "compute"],
                ["compute", "compute", "compute"],
            ];
            const parameterArr = [
                ['1-1', '1-1', '2-1'],
                ['1-2', '1-2', '2-2'],
            ];
            const data = handlePaste(event, rowIndex, colIndex, nameAllArr, methodsAllArr, parameterArr, subscriptArr);
            const {cols, nameSetArr, methodsSetArr, parameterSetArr, subscriptSetArr} = data;
            for (let a = 0; a < nameSetArr.length; a++) {
                for (let b = 0; b < nameSetArr[a].length; b++) {
                    this.form[nameSetArr[a][b]] = cols[a][b];
                }
            }
            for (let a = 0; a < methodsSetArr.length; a++) {
                for (let b = 0; b < methodsSetArr[a].length; b++) {
                    if (methodsSetArr[a][b]) {
                        let parameter = parameterSetArr[a][b];
                        let parameterArr = parameter ? parameter.split("-") : []
                        if (parameterArr.length >= 2) {
                            this.setCalculate(methodsSetArr[a][b], parameterArr[0], parameterArr[1]);
                        }
                    }
                }
            }
        },


        // 计算方法调用
        setCalculate(name, a, b, c, d, e) {
            this[name](a, b, c, d, e);
        }
    }
};
</script>

<style scoped lang="scss"></style>
